//
// Created by 86138 on 2025/5/4.
//

#ifndef QINGDAO_UNIVERSITY_LINKLIST_H
#define QINGDAO_UNIVERSITY_LINKLIST_H
#include "../01-intro/c1-1.h"

typedef int ElemType;
typedef struct LNode {
    ElemType Data;
    struct LNode *Next;
} LNode, *LinkList;

void InitList(LinkList &L);

Boolean IsEmpty(LinkList &L);

void DestroyList(LinkList &L);

void ClearList(LinkList &L);

int ListLength(LinkList &L);

void DispList(LinkList &L);

Status GetElem(LinkList &L, int i, ElemType &e);

LNode *LocateElem(LinkList &L, ElemType e);

int LocateElem2(LinkList &L, ElemType e);

Status ListInsert(LinkList &L, int i, ElemType e);

Status ListDelete(LinkList &L, int i, ElemType &e);

void CreateList_H(LinkList &L, int n);

void CreateList_R(LinkList &L, int n);

#endif //QINGDAO_UNIVERSITY_LINKLIST_H
